package com.xty.factory;

import com.xty.product.Phone;
import com.xty.product.products.HuaWeiPhone;
import com.xty.product.products.IPhone;
import com.xty.product.products.MidPhone;
import constant.DefaultConstant;
import lombok.extern.slf4j.Slf4j;

/**
 * Created By IntelliJ IDEA
 *
 * @author 许腾洋
 * @date 2021/11/24
 * description:工厂类，用于给客户返回产品，客户获取实例化对象的时候不再使用 new Object()形式，可以根据用户的选择条件来实例化相关的类
 */
@Slf4j
public class PhoneFactory {
    /**
     * 生产手机
     * @param phoneType 手机品牌
     * @return Phone
     */
    public Phone productPhone(String phoneType){
        if (DefaultConstant.MID_PHONE_TYPE.equals(phoneType)){
            return new MidPhone();
        }
        if (DefaultConstant.IPHONE_TYPE.equals(phoneType)){
            return new IPhone();
        }
        if (DefaultConstant.HUAWEI_PHONE_TYPE.equals(phoneType)){
            return new HuaWeiPhone();
        }
        log.info("------工厂暂时不能生产"+phoneType+"品牌手机------");
        return null;
    }
}
